// *********************************************************
// Ravi Mehra
// 904425258
// ravishi@vt.edu
// ECE 3574
// Homework 8
// 12/4/2009
// Header file for PrimeSearch that has data and function prototypes
// *********************************************************

#ifndef PRIMECLASS_H
#define PRIMECLASS_H

#include "primeThread.h"
#include <QVariant>
#include <QAction>
#include <QApplication>
#include <QButtonGroup>
#include <QHeaderView>
#include <QLabel>
#include <QLineEdit>
#include <QListWidget>
#include <QMainWindow>
#include <QMenu>
#include <QMenuBar>
#include <QProgressBar>
#include <QPushButton>
#include <QStatusBar>
#include <QWidget>
#include <QTextStream>
#include <stdlib.h>
#include <QThread>
#include <QQueue>
#include <QDebug>

class PrimeSearch : public QMainWindow {
    Q_OBJECT
public:
    PrimeSearch();

public slots:
    // My various slots
    void start();
    void stop();
    void addPrime(int);

signals:
	// My various signals
    void sendInputValues(int, int);
    
private:
    // My various private data member 
    int m_FromVal;
    int m_ToVal;
    int m_CounterVal;
    int m_TotalFoundVal;
    bool m_Dead;
    PrimeThread* m_PrimeThread;
    
	// My various private functions
    void setupPrimeSearch(QMainWindow *);
    void retranslatePrimeSearch(QMainWindow *);
    void initializeInMainLogin();
    
    // All the widgets Qt Designer generated
    QAction *m_ActionStart;
    QAction *m_ActionStop;
    QAction *m_ActionExit;
    QWidget *centralwidget;
    QLabel *m_TitleQuestion;
    QLineEdit *m_FromBox;
    QLineEdit *m_ToBox;
    QLabel *m_FromLabel;
    QLabel *m_ToLabel;
    QLineEdit *m_CounterBox;
    QLabel *m_CounterLabel;
    QProgressBar *m_ProgressBar;
    QLabel *m_TotalFoundLabel;
    QLineEdit *m_TotalFoundBox;
    QListWidget *m_PrimesList;
    QPushButton *m_StartButton;
    QPushButton *m_StopButton;
    QPushButton *m_ExitButton;
    QMenuBar *menubar;
    QMenu *menuFile;
    QStatusBar *statusbar;
};
#endif 

